home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / doc / dmsetup / INTRO < prev   
Text File  |  2003-04-30  |  2KB  |  64 lines

  1. An introduction to the device mapper
  2. ====================================
  3.  
  4. The goal of this driver is to support volume management.  
  5. The driver enables the definition of new block devices composed of
  6. ranges of sectors of existing devices.  This can be used to define
  7. disk partitions - or logical volumes.  This light-weight kernel
  8. component can support user-space tools for logical volume management.
  9.  
  10. The driver maps ranges of sectors for the new logical device onto
  11. 'mapping targets' according to a mapping table.  Currently the mapping 
  12. table must be supplied to the driver through an ioctl interface.
  13. Earlier versions of the driver also had a custom file system interface 
  14. (dmfs), but we stopped work on this because of pressure of time.
  15.  
  16. The mapping table consists of an ordered list of rules of the form:
  17.   <start> <length> <target> [<target args> ...]
  18. which map <length> sectors beginning at <start> to a target.
  19.  
  20. Every sector on the new device must be specified - there must be no
  21. gaps between the rules.  The first rule has <start> = 0. 
  22. Each subsequent rule starts from the previous <start> + <length> + 1.
  23.  
  24. When a sector of the new logical device is accessed, the make_request
  25. function looks up the correct target and then passes the request on to
  26. the target to perform the remapping according to its arguments.
  27.  
  28. The following targets are available:
  29.   linear
  30.   striped
  31.   error
  32.   snapshot
  33.   mirror
  34.  
  35. The 'linear' target takes as arguments a target device name (eg
  36. /dev/hda6) and a start sector and maps the range of sectors linearly
  37. to the target.
  38.  
  39. The 'striped' target is designed to handle striping across physical
  40. volumes.  It takes as arguments the number of stripes and the striping
  41. chunk size followed by a list of pairs of device name and sector.
  42.  
  43. The 'error' target causes any I/O to the mapped sectors to fail.  This
  44. is useful for defining gaps in the new logical device.
  45.  
  46. The 'snapshot' target supports asynchronous snapshots.
  47. See http://people.sistina.com/~thornber/snap_performance.html.
  48.  
  49. The 'mirror' target is used to implement pvmove.
  50.  
  51. In normal scenarios the mapping tables will remain small.
  52. A btree structure is used to hold the sector range -> target mapping.
  53. Since we know all the entries in the btree in advance we can make a
  54. very compact tree, omitting pointers to child nodes as child node
  55. locations can be calculated.
  56.  
  57. Benchmarking with bonnie++ suggests that this is certainly no slower
  58. than current LVM.
  59.  
  60.  
  61. Sistina UK
  62. Updated 30/04/2003
  63.  
  64.